package com.yonyou.sto.modules.ims.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 
 * </p>
 *
 * @author aegon
 * @since 2020-10-10
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ims_bill")
@ApiModel(value="ImsBill对象", description="")
public class ImsBill implements Serializable {

    private static final long serialVersionUID=1L;

    @ApiModelProperty(value = "发票id")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty(value = "发票流水号")
    private String billSerial;

    @ApiModelProperty(value = "收款单编号")
    private String billSn;

    @ApiModelProperty(value = "发票号码")
    private String billNo;

    @ApiModelProperty(value = "发票代码")
    private String billCode;

    @ApiModelProperty(value = "销售方名称")
    private String sellerName;

    @ApiModelProperty(value = "销售方纳税人识别号")
    private String sellerTaxSn;

    @ApiModelProperty(value = "销售方地址电话")
    private String sellerAddressPhone;

    @ApiModelProperty(value = "销售方银行账户")
    private String sellerBankAccount;

    @ApiModelProperty(value = "购买方")
    private String buyerName;

    @ApiModelProperty(value = "购买方纳税人识别号")
    private String buyerTaxSn;

    @ApiModelProperty(value = "购买方地址电话")
    private String buyerAddressPhone;

    @ApiModelProperty(value = "购买方银行账号")
    private String buyerBankAccount;

    @ApiModelProperty(value = "金额")
    private BigDecimal payAmount;

    @ApiModelProperty(value = "税额")
    private BigDecimal taxAmount;

    @ApiModelProperty(value = "价税合计")
    private BigDecimal taxTotal;

    @ApiModelProperty(value = "收款内容和备注")
    private String note;

    @ApiModelProperty(value = "发票类型：3->增值税普通发票；4->增值税专用发票")
    private Integer billType;

    @ApiModelProperty(value = "开票日期")
    private Date createTime;

    @ApiModelProperty(value = "发票状态：1->未开票；2->开票成功；3->开票失败；4->部分开票；5->开票中；6->已作废；7->已退回；8->已红冲")
    private Integer status;

    @ApiModelProperty(value = "发票提取url")
    private String extractUrl;

    @ApiModelProperty(value = "发票提取码与提取url配合使用")
    private String extractCode;

    @ApiModelProperty(value = "红冲时间")
    private Date redTime;

    @ApiModelProperty(value = "合同编号")
    private String contractSn;

    @ApiModelProperty(value = "合同名称")
    private String contractName;

    @ApiModelProperty(value = "发票内容")
    private String billContent;

    @ApiModelProperty(value = "作废时间")
    private Date cancelTime;

}
